package com.huaxin.hxmodulesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmodulesystem.dto.ResponseResult;
import com.huaxin.hxmodulesystem.dto.request.AddElectricianArchivesReqDTO;
import com.huaxin.hxmodulesystem.dto.request.AuditElectricianReqDTO;
import com.huaxin.hxmodulesystem.dto.request.ElectricianLoginReqDTO;
import com.huaxin.hxmodulesystem.dto.request.UpdateElectricianArchivesReqDTO;
import com.huaxin.hxmodulesystem.dto.response.ElectricianArchivesLoginRespDTO;
import com.huaxin.hxmodulesystem.models.ElectricianArchives;
import com.huaxin.hxmodulesystem.models.enums.AuditStatus;

public interface ElectricianArchivesService extends IService<ElectricianArchives> {
    /**
     * 添加电工档案
     *
     * @param in
     * @return
     */
    ResponseResult<ElectricianArchives> addElectricianArchives(AddElectricianArchivesReqDTO in);

    /**
     * 修改电工档案
     *
     * @param in
     * @return
     */
    ResponseResult<String> updateElectricianArchives(UpdateElectricianArchivesReqDTO in);

    /**
     * 删除电工档案
     *
     * @param id
     * @return
     */
    ResponseResult<String> deleteElectricianArchives(String id);

    /**
     * 获取电工档案列表
     *
     * @param pageNum     页码
     * @param pageSize    每页数量
     * @param workNumber  工号
     * @param realName    真实姓名
     * @param phone       手机号码
     * @param status      状态：0正常；1-禁用；2-初始化
     * @param auditStatus 审核状态：0-待审核；1-审核通过；2-审核未通过
     * @return
     */
    ResponseResult<Page<ElectricianArchives>> getElectricianArchivesList(Integer pageNum, Integer pageSize, String workNumber, String realName, String phone, Integer status, Integer auditStatus);

    /**
     * 获取电工档案详情
     *
     * @param id
     * @return
     */
    ResponseResult<ElectricianArchives> getElectricianArchivesDetail(String id);

    /**
     * 电工登录
     *
     * @param in
     * @return
     */
    ResponseResult<ElectricianArchivesLoginRespDTO> electricianLogin(ElectricianLoginReqDTO in);

    /**
     * 审核电工档案
     *
     * @param in
     * @return
     */
    ResponseResult<Boolean> audit(AuditElectricianReqDTO in);
}
